package com.googlecode.wicketcharts.highcharts.options;

import java.awt.Color;
import java.util.List;

/**
 * This is the main class for configuring a chart. This structure of this class
 * is designed to be very close to the Highcharts options object. For
 * explanations of all options, please consult <a
 * href="http://www.highcharts.com/ref/">the Highcharts API reference</a>.
 * <p/>
 * The options object will be serialized to a JSON object which is passed into
 * the Highcharts library. Options that are not set (i.e. that are null), are
 * not serialized into JSON, so that the default values of the Highcharts
 * library will be used.
 * 
 * @author Tom
 * 
 */
public class Options extends AbstractJsonOptions {

	private ChartOptions chart;

	private List<? extends SeriesOptions> series;

	private List<Color> colors;

	private Title title;

	private XAxis xAxis;

	private YAxis yAxis;

	private LegendOptions legend;

	private LanguageOptions lang;

	private ExportingOptions exporting;

	public void setChartOptions(ChartOptions chart) {
		this.chart = chart;
	}

	public ChartOptions getChartOptions() {
		return chart;
	}

	public void setTitle(Title title) {
		this.title = title;
	}

	public Title getTitle() {
		return title;
	}

	public void setxAxis(XAxis xAxis) {
		this.xAxis = xAxis;
	}

	public XAxis getxAxis() {
		return xAxis;
	}

	public void setSeries(List<? extends SeriesOptions> series) {
		this.series = series;
	}

	public List<? extends SeriesOptions> getSeries() {
		return series;
	}

	public void setLegend(LegendOptions legend) {
		this.legend = legend;
	}

	public LegendOptions getLegend() {
		return legend;
	}

	public void setLanguageOptions(LanguageOptions lang) {
		this.lang = lang;
	}

	public LanguageOptions getLanguageOptions() {
		return lang;
	}

	public void setExporting(ExportingOptions exporting) {
		this.exporting = exporting;
	}

	public ExportingOptions getExporting() {
		return exporting;
	}

	public void setColors(List<Color> colors) {
		this.colors = colors;
	}

	public List<Color> getColors() {
		return colors;
	}

	public void setyAxis(YAxis yAxis) {
		this.yAxis = yAxis;
	}

	public YAxis getyAxis() {
		return yAxis;
	}

}
